//
// Created by User on 24-10-7.
//

#ifndef AUDIO_ENCODER_H
#define AUDIO_ENCODER_H

#include "packet_provider.hpp"

namespace encoder
{
    class general_encoder;

    class audio_encoder final
        : public interfaces::audio_packet_provider
    {
    public:
        explicit audio_encoder(general_encoder& encoder);

        ~audio_encoder() override = default;

        utils::media_packet get_packet() override;

        const AVCodecParameters* get_codec() const override;

        AVRational get_timebase() const override;

        int total_frames() const override;

    private:
        general_encoder& m_encoder;
    };
}


#endif //AUDIO_ENCODER_H
